/**
 * 校验特殊字符
 * @param str
 * @returns {Boolean}
 * checkStr(字符)
 * 返回false无特殊字符
 */
function checkStr(str){
    var patrn=/[!$^&*()<>"{},\/;'[\]]/;
    if(patrn.test(str)){
        return true;
    }
    return false;
}

/**
 * 监听屏幕的滑动事件，并当满足条件时运行方法
 * setTouchmoveById(fx,funObj,id)
 * fx:方向
 * funObj:方法
 */
function setTouchmoveById(fx,funObj,id){
    var inFunObj = function(){
        var $this =$("#"+id),
            viewH =$this.height(),//可见高度
            contentH =$this.get(0).scrollHeight,//内容高度
            scrollTop =$this.scrollTop();//滚动高度
        //console.log(scrollTop/(contentH -viewH))
        //console.log(scrollTop/(contentH -viewH)>=0.95)

        if(scrollTop/(contentH -viewH)>=0.9){ //到达底部100px时,加载新内容
            //console.log("sfsdfsdf");
            // 这里运行
            funObj();
        }
    };
    $('body').bind('touchstart',function(e){
        startX = e.originalEvent.changedTouches[0].pageX;
        startY = e.originalEvent.changedTouches[0].pageY;
    });
    $("body").bind("touchmove",function(e){
        //获取滑动屏幕时的X,Y
        endX = e.originalEvent.changedTouches[0].pageX;
        endY = e.originalEvent.changedTouches[0].pageY;
        //获取滑动距离
        distanceX = endX-startX;
        distanceY = endY-startY;
        //判断滑动方向
        if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX>0){
            if(fx == 'right'){
                inFunObj();
            }
            //console.log('往右滑动');
        }else if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX<0){
            if(fx == 'left'){
                inFunObj();
            }
            //console.log('往左滑动');
        }else
        if(Math.abs(distanceX)<Math.abs(distanceY) && distanceY<0){

            if(fx == 'top'){
                inFunObj();
                //console.log(fx+'往上滑动');
            }


        } else if(Math.abs(distanceX)<Math.abs(distanceY) && distanceY>0){
            if(fx == 'down'){
                inFunObj();
                //console.log(fx+'往下滑动');
            }

        }
    })
}
/**
 * 打开遮蔽遮罩层
 * setLoading(boolean)		默认添加在body中
 * setLoading(boolean,id)	添加在指定id中
 * 输入true开启遮罩
 * 输入false关闭遮罩
 */
function setLoading(flag){
    //
    if($add_can_sumbit){
        $add_can_sumbit = false;
    }
    var setId = arguments[1];
    if(setId == undefined){
        setId = "body";
    }
    var loading = $("#loading");
    var mask = $("#mask");
    if(loading){
        $(setId).append('<div id="loading" class="loading hide"></div>');
    }
    if(mask){
        $(setId).append('<div id="mask" class="mask hide"></div>');
    }
    if(flag){

        $("#loading").removeClass('hide');
        $("#mask").removeClass('hide');
    }else{
        $("#loading").addClass('hide');
        $("#mask").addClass('hide');
    }
}
/**
 * 判断是否为空或其他特殊字符
 * 正常字符返回 false
 */
function ifNull(str){
    if(str == null || str == '' || str == undefined || str == 'undefined'){
        return true;
    }
    return false;
}
/**
 * 输入提示
 * 闪烁div边框
 * 此方法需要导入wexin_add.css
 * message(boolean,str)
 * 输入true闪烁指定div边框
 * false取消边框显示
 */
function message(flag,id){
    if(flag){
        $("#"+id).attr("class","lan_inputClass");
        setTimeout(function(){
            $("#"+id).attr("class","hui_inputClass");
            setTimeout(function(){
                $("#"+id).attr("class","lan_inputClass");
                setTimeout(function(){
                    $("#"+id).attr("class","lan_inputClass");
                },200);
            },200);
        },200);
    }else{
        $("#"+id).attr("class","hui_inputClass");
    }
}
/**
 * 是否身份证
 * isCardNo(身份证字符)
 * 符合时返还 false
 */
function isCardNo(card)
{
    // 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X
    var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if(reg.test(card) === false)
    {
        return true;
    }
    return false;
}

//body下不触发手指滑动
function bodySrollerSet(flag){
    //微信浏览器禁用滚动条
    if(flag){
        $("body").on("touchmove",function(event){
            event.preventDefault;
        }, false)
        //启用
    }else{
        $("body").off("touchmove");
    }
}
/**
 * 判断是否 安卓
 * @returns {Boolean}
 */
function isAndroidPhone(){
    var u = navigator.userAgent;
    return u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
}
/**
 * 判断是否苹果
 * @returns
 */
function isIOSPhone(){
    var u = navigator.userAgent;
    return !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
}
/**
 * 关闭微信浏览器
 */
function closebrower(){
    //关闭支付回调的页面和浏览器
    //WeixinJSBridge.invoke('closeWindow',{},function(res){});
    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
        WeixinJSBridge.call('closeWindow');//微信
    } else if(ua.indexOf("alipay")!=-1){
        AlipayJSBridge.call('closeWebview');  //支付宝
    }else if(ua.indexOf("baidu")!=-1){
        BLightApp.closeWindow();//百度钱包
    }
}